﻿using LdtJudge.DataEngine.Model.CommModel;
using LdtJudge.DataEngine.Model.DataModel.DataParseStorage;
using LdtJudge.DataEngine.Model.DataModel.ElementNode;
using LdtJudge.DataEngine.Model.DataModel.SysCommon;
using LdtJudge.DataEngine.Model.ElmentModel;
using LdtJudge.DataEngine.Model.EvidenceQuestion;
using LdtJudge.DataEngine.Model.OptimizationModel;
using LdtJudge.DataEngine.Model.Personnel;
using LdtJudge.DataEngine.Model.XMLConfigModel.DataStores;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Xml;

namespace LdtJudge.DataEngine.DataBaseStores
{
    /// <summary>
    /// 卷宗分析数据内容
    /// </summary>
    public class DyData_Analysis:DyDataBase
    {

        ///<summary>
        /// 发言人数据集合
        ///</summary> 
        public DataTable SpokePersonJoin  { get; set; }

        public Dictionary<string, object> dicTable = new Dictionary<string, object>();
        ///<summary>
        /// 卷宗文件fl_id
        ///</summary> 
        public string FL_ID { get; set; }


        ///<summary>
        /// 卷宗编号sf_id
        ///</summary> 
        public string SF_ID { get; set; }


        /////<summary>
        ///// 卷宗code
        /////</summary> 
        //public string SourceCode { get; set; }


        ///<summary>
        /// 卷宗文本类型
        ///</summary> 
        public string TextType { get; set; }

        /// <summary>
        /// 当前传入阶段实体
        /// </summary>
        public StageProcessModel StageProcessAnalysisModel { get; set; }

        /// <summary>
        /// 当前传入阶段字典信息
        /// </summary>
        public string SatgeAnalysis { get; set; }

        /// <summary>
        /// 分析数据阶段信息
        /// </summary>
        public StageProcessModel StageProcessAnalysisDataModel { get; set; }

        ///// <summary>
        ///// 消息ID
        ///// </summary>
        //public string MsgID { get; set; }

        ///<summary>
        /// 发言人集合
        ///</summary> 
        public List<ElementSpokeName> ElementSpokeList  { get; set; }


        ///<summary>
        /// 人员对话实体
        ///</summary> 
        public List<ElementExtractText> SpokeTextDialogue  { get; set; }


        /////<summary>
        ///// 案由集合
        /////</summary> 
        //public List<CaseCauseModel> CaseCausesList  { get; set; }


        #region 案由要素结果
        ///<summary>
        /// 案由分析结果集合
        ///</summary> 
        public Dictionary<string, List<NodeModelList>> CaseCauseElementList  { get; set; }

        ///<summary>
        /// 要素分析信息===>案件要素分析结果
        ///</summary> 
        public List<ElementNodeModel> ElementNodeModelsList  { get; set; }

        ///<summary>
        /// 要素分析结果xml===>案由结果
        ///</summary> 
        public Dictionary<string, XmlDocument> ElementAnalysisResults = new Dictionary<string, XmlDocument>();

        ///<summary>
        /// 要素分析结果model====>案由结果
        ///</summary> 
        public Dictionary<string, List<DataModel>> ElementAnalsisDataModelResults = new Dictionary<string, List<DataModel>>();

        /// <summary>
        /// 合并后要素集合
        /// </summary>
        public List<DataModel> MergeElmentDataModelList { get; set; }

        /// <summary>
        /// 理由要素分析结果model
        /// </summary>
        public List<DataModel> ReasonDataModel { get; set; }

        #endregion

        #region 整体案件分析结果(包含案件与案由要素结果)
        ///<summary>
        /// 数据分析结果===>整个案件的分析结果xml
        ///</summary> 
        public XmlDocument AnalysisResultsXml  { get; set; }

        ///<summary>
        /// 分析实体对象===>整体的分析结果(案件与案由结果)
        ///</summary> 
        public DataSoursModel AnalysisResultsDataModel  { get; set; }
        #endregion

        ///<summary>
        /// 分析相关参数
        ///</summary> 
        public An_fengxicanshu FengXiCanShu { get; set; }

        /// <summary>
        /// 分析卷宗内容
        /// </summary>
        public An_shujuneirong Shujuneirong { get; set; }

        /// <summary>
        /// 分析卷宗的数据存储
        /// </summary>
        public List<An_jiegoushujucunchu> Jiegoushujucunchus { get; set; }

        /// <summary>
        /// 段落
        /// </summary>
        public List<An_duanluo> Duanluos { get; set; }

        /// <summary>
        /// 人员信息实体
        /// </summary>
        public List<An_anjianshiti> Anjianshitis { get; set; }

        /// <summary>
        /// 实体角色
        /// </summary>
        public List<An_anjianshitijuese> Anjianshitijueses { get; set; }

        /// <summary>
        /// 发言人段落信息
        /// </summary>
        public List<An_fayanrenduanluoxinxi> Fayanrenduanluoxinxis { get; set; }
        /// <summary>
        /// 回填信息集合
        /// </summary>
        public List<ChangeDataModel> changeDataModelList { get; set; }

        /// <summary>
        /// 案由要素回填数据
        /// </summary>
        public List<ChangeDataModel> causeChangeDataModelList = new List<ChangeDataModel>();

        /// <summary>
        /// 法官确认实体对象
        /// </summary>
        public DataSoursModel JudgeConfirmDataModel { get; set; }

        /// <summary>
        /// 回填信息集合
        /// </summary>
        public List<DataContent> dataContentList = new List<DataContent>();

        

        /// <summary>
        /// 基础XML
        /// </summary>
        public string BaseElement { get; set; }

        /// <summary>
        /// 被合并的xml
        /// </summary>
        public string MergeElment { get; set; }

        /// <summary>
        /// 是否为证据
        /// </summary>
        public int IsEvidence { get; set; }

        /// <summary>
        /// 证据与事实关键路径集合
        /// </summary>
        public string EvidenceXpathList { get; set; }

        /// <summary>
        /// 补充实体
        /// </summary>
        public string BcXML { get; set; }

        /// <summary>
        /// 地域
        /// 
        /// </summary>
        public string District { get; set; }

        /// <summary>
        /// 证据排序
        /// </summary>
        public List<OredContent> OredContents { get; set; }

        /// <summary>
        /// 证据排序状态
        /// 0.未排序 1.已排序
        /// </summary>
        public int? EvidSortedState { get; set; }


        /// <summary>
        /// 机器学习缓存数据
        /// </summary>
        public Dictionary<string, XmlDocument> dicCauseMLValue = new Dictionary<string, XmlDocument>();

        /// <summary>
        /// 是否段落分析
        /// </summary>
        public bool? IsParagraphAnalysis { get; set; }
    }
}
